<?php

namespace App\Http\Controllers;

class MpWxConfigApiController extends Controller
{
    use \Largezhou\WechatMenu\Controller;

    protected $conf;

    public function __construct()
    {
        $this->conf = [
            /*
             * axios 请求的路由前缀，最终会请求这个地址 routePrefix/resources
             *
             * 请注意，你填写的 'wechat-menu' 和 '/wechat-menu' 是有区别的
             */
            'routePrefix' => '/wechat-menu', // 这个前缀，跟第一步中的第二个路由的前缀要一样
            /*
             * 存储微信菜单和事件设置的文件
             * 可以自行用其他方式来存储和读取
             */
            'data_path' => storage_path('wechat_menu.json'),
            /*
             * 微信事件回调出错时，返回给用户微信的消息
             */
            'handler_error_msg' => '服务器开小差了',
            /*
             * easy wechat 扩展的配置
             */
            'easyWechat' => [
                'app_id' => '',
                'secret' => '',
                'token' => '',
                'aes_key' => '',    
                'log' => [
                    'default' => 'dev', // 默认使用的 channel，生产环境可以改为下面的 prod
                    'channels' => [
                        // 测试环境
                        'dev' => [
                            'driver' => 'single',
                            // 'path' => 'logs/wechat.log',
                            'level' => 'debug',
                        ],
                        // 生产环境
                        'prod' => [
                            'driver' => 'daily',
                            // 'path' => 'logs/wechat.log',
                            'level' => 'info',
                        ],
                    ],
                ],
            ],
        ];
    }

    public function htmlContent()
    {
        \Largezhou\WechatMenu\Manager::getInstance()->setConfig($this->conf);

        return  \Largezhou\WechatMenu\Content::renderWechatMenu();
    }

    public function wechatMenuAjax()
    {
        // setConfig 中的配置与上面的一样，这个配置步骤，正常应该放到一个应用启动的地方
        \Largezhou\WechatMenu\Manager::getInstance()->setConfig($this->conf);

        // 此方法是通过 use \Largezhou\WechatMenu\Controller; 引入的
        return $this->resources();
    }

    public function wechatServe()
    {
        // setConfig 中的配置与上面的一样，这个配置步骤，正常应该放到一个应用启动的地方
        \Largezhou\WechatMenu\Manager::getInstance()->setConfig($this->conf);

        return \Largezhou\WechatMenu\Manager::getInstance()->serve();
    }
}
